The present invention generally relates to adding speech-enabled functionality to an application and, more particularly, to streaming the coding process for adding speech-enabled functionality by auto-generating natural language interfaces to invoke web services.
Adding functionality to a speech-enabled application can be complex, labor intensive, and time consuming. The addition of a speech-enabled function requires the completion of a number of various integration jobs. For example, adding a speech-enabled function requires code to perform a task associated with the function (i.e. order pizza, read emails, search for news, etc.). Also, an additional function in a speech-enabled application requires a list of natural language commands that should be associated with that particular function (i.e., “I'd like to order pizza”, “I'm craving pizza”, “read emails”, etc.). Finally, each additional function requires code to manage each interaction.
In other words, adding new functionality to a speech-enabled application requires: defining the natural language commands that will be associated with the function; implementing code that will parse that command and route the request to an appropriate handler; implementing code to handle the request; and implementing code that will respond to the user. Web services that provide a desired function may be leveraged to implement code to handle a request, however, using web services requires a developer to learn about a web service, and integrating the web service into a speech-enabled application so that the speech-enabled application conforms to the web service requirements. Conforming to the web service can be complicated given that web services accept a variety of inputs, produce a variety of outputs, and may chain multiple web service endpoints in the process of providing a service. As a result, adding functionality to a speech-enabled application can be complicated further when the functionality is based on a third party web service. In short, adding functionality to a speech-enabled application requires significant knowledge and coding. For example, adding functionality to a speech-enabled application requires manually reading web service definitions and writing code, which is time consuming, tedious, and inefficient.
Furthermore, such solutions require a developer to account for dependencies between web services, which can be convoluted and complex to determine, track, and incorporate into code. For example, a web service may depend on obtaining user authentication information, thus requiring the code to first obtain the user authentication information. Since many web services include such dependencies, the developer must incorporate these dependencies in the underlying code in order for the web service to function properly.